【Hadoop学习】Hadoop 1.0 & Hadoop 2.0

Hadoop 1.0

Hadoop 1.0即第一代Hadoop,由分布式存储系统HDFS和分布式和分布式计算框架MapReduce组成。其中HDFS由一个NameNode和多个DataNode组成MapReduce由一个JobTracker和多个TaskTracker组成,对应的Hadoop版本为Apache Hadoop 0.20.x、1.x、0.21.x、0.22.x和CDH3。

Hadoop 2.0

Hadoop 2.0即第二代Hadoop,为了克服Hadooop 1.0中HDFS和MapReduce存在的各种问题而提出的。针对Hadoop 1.0中的单NameNode制约HDFS的扩展性问题,提出了HDFS Federation,它让多个NameNode分管不同的目录进而实现访问隔离和横向扩展,同时解决了NameNode的单点故障问题。针对Hadoop 1.0中的MapReduce在扩展性和多框架支持等方面的不足,它将JobTracker中的资源管理和作业控制功能分开,分别由组件ResourceManager和ApplicationMaster实现,其中,ResourceManager负责所有应用程序的资源分配,ApplicationMaster仅负责管理一个应用程序,着便是全新的通用的资源管理框架YARN。Hadoop 2.0对应的Hadoop的版本为Apache Hadoop 0.23.x、2.x和CDH4。

MRv1

MapReduce 1.0计算框架主要由三部分组成,分别是编程模型,数据处理引擎和运行时环境。它的编程模型是将问题抽象成Map和Reduce两个阶段,其中Map阶段将输入数据解析成key/value,迭代调用map()函数处理后,再以key/value的形式输出到本地目录,而Reduce阶段则是将Map阶段输出的数据按照key相同的value进行归约处理,并将最终结果写到HDFS上。它的数据处理引擎由MapTask和ReduceTask组成,分别负责Map阶段逻辑和Reduce阶段逻辑的处理。运行时的环境由一个JobTracker和若干个TaskTracker组成,JobTracker负责资源管理和所有作业的控制,TaskTracker负责接收来自JobTracker的命令并执行它。

MRv2

MRv2具有与MRv1相同的编程模型和数据处理引擎,唯一不同的是运行时环境。MRv2是在MRv1基础上经加工之后,运行于资源管理框架YARN之上的计算框架。它由资源管理系统YARN和作业控制进程ApplicationMaster组成,其中YARN负责资源管理和调度,而ApplicationMaster仅负责一个作业的管理。MRv1仅是一个独立的离线计算框架,而MRv2则是运行于YARN之上的MapReduce。

YARN

YARN是Hadoop 2.0中的资源管理系统,它是一个通用的资源管理模块,可以为各类应用横须进行资源管理和调度。YARN不仅限于MapReduce一种框架使用,也可以供其他框架使用,比如Spark,Storm等。

HDFS Federation

在Hadoop 2.0中,对HDFS进行改进,是的NameNode可以横向扩展成多个,每个NameNode分管一部分目录,进而产生了HDFS Federation,该机制的引入不仅增强了HDFS的扩展性,也使HDFS具备了隔离性。